1. Statement of the Technical Field
The present invention relates to the field of resource management, and more particularly to resource management in a collaborative computing environment.
2. Description of the Related Art
Collaborative computing includes computing systems configured to facilitate collaboration between end users in regard to a project, document, business process, educational process and the like. Though individual computing applications have permitted collaboration at some level for many decades now, truly collaborative suites have only become commercially popular in the past decade. The most functional of collaborative applications facilitate the completion of a task or set of tasks, whether virtually through a computing system, or actually through in-person collaboration. The conventional learning management system thus represents a common collaborative application.
To facilitate the completion of a task or set of tasks, the typical collaborative application can schedule resources for consumption in the course of completing the task. Additionally, calendared events also can implicate the consumption of resources. In this regard, a resource can include any tangible object prerequisite to the completion of a task or a portion of a task. Generally, resources can range from immutable, permanent and fixed resources such as computing resources, meeting rooms, audiovisual equipment and meeting participants, to consumable resources which require replenishment, such as pencils, paper, ink and toner, to name a few.
In the conventional collaborative application, resource management can be embedded and hard coded to specific elements of the application to manage particular resources utilized in the course of completing a task or a portion of a task. In this regard, resource management refers to the organization, scheduling and tracking of resources which are required by or prerequisite to some collaborative activity facilitated by the collaborative application. For example, where a collaborative activity includes the scheduling and management of a meeting, whether virtual or actual, the resource management logic first must schedule a physical meeting room or computing resources sufficient to host a virtual meeting. Additionally, audiovisual equipment can be requisitioned and, of course, the meeting participants must be scheduled. Considering additional consumable resources such as brochures, presentations, pens and paper, the resource management task can become a daunting task indeed.
Computer systems that manage resources in this way typically do so by specifically implementing system features that are tightly coupled to the types of resources being managed. In the example of a collaborative system configured to arrange meetings, the capabilities to manage the meeting rooms are typically implemented in a “hard coded” fashion that is specific to rooms alone. To add a new resource necessary to complete the meeting task—for instance the reservation and delivery of a projector or white board—the new resource first must defined programmatically within the collaborative system.
Programmatically defining a manageable resource within a collaborative system can be a tolerable task where the manageable resources are simple constructs and few in number. In this regard, to programmatically define the new resource, first a software developer must hard code a description of the new resource within the resource management logic and a specialized database record format must be defined for the new resource. Subsequently the developer must augment the resource management logic to handle the newly added resource, to address individually unique characteristics of the newly added resource and to access the specialized database record format. Thus, as it will be apparent to the skilled artisan, programmatically defining a manageable resource within a collaborative system can become intolerable where the manageable resources become complex in nature and many in number.
It will be recognized by one skilled in the art that resource management is a general computing problem that can be applied to many situations within the collaborative context. In the case of many general computing problems, generic solutions have been implemented to accommodate the particular nuances of specific problem spaces. Still, at present the problem of resource management includes only a selection of solutions each having a specific implementation. Like other computing problems of a general nature, however, there too should be a generic implementation of a solution for managing resources in a collaborative environment. In the generic implementation, one must be able to add resource management capabilities that are specific to a particular problem domain in a convenient and standardized way.